<template>
    <div>
        <page-header title="欢迎使用 Fantastic-admin（基础版）">
            <template #content>
                <div>
                    <div style="margin-bottom: 5px;">这是一款<b class="text-emphasis">开箱即用</b>的中后台框架，同时它也经历过数十个真实项目的技术沉淀，确保框架在开发中可落地、可使用、可维护</div>
                    <div>注：在作者就职的公司，本框架已在电商、直播、OA、ERP等多个不同领域的中后台系统中应用并稳定运行</div>
                </div>
            </template>
            <el-button-group style="margin-right: 10px;">
                <el-button type="success" plain @click="open(`https://hooray.${locationOrigin.includes('gitee') ? 'gitee' : 'github'}.io/fantastic-admin`)">开发文档</el-button>
                <el-button type="primary" @click="open(`https://${locationOrigin.includes('gitee') ? 'gitee' : 'github'}.com/hooray/fantastic-admin`)">代码仓库</el-button>
            </el-button-group>
        </page-header>
        <el-row :gutter="20" style="margin: 0 10px;">
            <el-col :lg="8">
                <page-main title="框架信息" style="margin: 0 0 20px;">
                    <div class="fa-info">
                        <img :src="`https://hooray.${locationOrigin.includes('gitee') ? 'gitee' : 'github'}.io/fantastic-admin/logo.png`" style="width: 150px;">
                        <h1>Fantastic-admin</h1>
                        <el-table :data="diff" row-key="prop" size="mini" border stripe>
                            <el-table-column label="基础版" align="center">
                                <template #default="scope">
                                    <div v-for="(item, index) in scope.row.basic" :key="index">{{ item }}</div>
                                </template>
                            </el-table-column>
                            <el-table-column label="专业版" align="center">
                                <template #default="scope">
                                    <div v-for="(item, index) in scope.row.pro" :key="index">{{ item }}</div>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                </page-main>
            </el-col>
            <el-col :lg="16">
                <el-row :gutter="20" style="margin: 0 -10px 20px;">
                    <el-col :md="4">
                        <div class="icon-box icon-box-1" @click="onIconClick('收藏')">
                            <el-icon><el-icon-star /></el-icon>
                            <div class="title">收藏</div>
                        </div>
                    </el-col>
                    <el-col :md="4">
                        <div class="icon-box icon-box-2" @click="onIconClick('通知')">
                            <el-icon><el-icon-bell /></el-icon>
                            <div class="title">通知</div>
                        </div>
                    </el-col>
                    <el-col :md="4">
                        <div class="icon-box icon-box-3" @click="onIconClick('图集')">
                            <el-icon><el-icon-picture /></el-icon>
                            <div class="title">图集</div>
                        </div>
                    </el-col>
                    <el-col :md="4">
                        <div class="icon-box icon-box-4" @click="onIconClick('拍照')">
                            <el-icon><el-icon-camera /></el-icon>
                            <div class="title">拍照</div>
                        </div>
                    </el-col>
                    <el-col :md="4">
                        <div class="icon-box icon-box-5" @click="onIconClick('视频')">
                            <el-icon><el-icon-video-camera /></el-icon>
                            <div class="title">视频</div>
                        </div>
                    </el-col>
                    <el-col :md="4">
                        <div class="icon-box icon-box-6" @click="onIconClick('购物')">
                            <el-icon><el-icon-goods /></el-icon>
                            <div class="title">购物</div>
                        </div>
                    </el-col>
                </el-row>
                <page-main title="应用场景" style="margin: 0 0 20px;">
                    <div class="question">
                        <ol class="answer">
                            <li><span>没有前端开发人员的小型公司。</span>据了解，有些小型公司没有前端开发人员，而这些公司在开发中后台系统的时候，直接要求后端开发人员来进行开发工作。所以借助 Vue 的易学习易上手特性，再加上本框架的加持，可以让后端开发人员能在短时间内转型成为全栈开发。</li>
                            <li><span>前端开发人员不足的中小型公司。</span>根据招聘网站统计，几乎所有公司都缺前端，其中有很大一部分中小型公司标配只有1-2名前端开发人员，而这些公司在开发中后台系统的时候，如果能有一套现成的中后台框架系统，不仅能提高项目开发效率，同时还大大减轻前端开发人员工作压力。</li>
                            <li><span>项目型公司。</span>特点为项目多，周期短，甲方对页面布局和主题风格有绝对话语权，而通过专业版提供的 20 套页面布局和 6 款主题风格（共计 120 种）可应对绝大部分甲方需求，并且可自定义扩展主题风格的样式，实现高度定制化。</li>
                            <li><span>产品型公司。</span>产品型公司最担心的就是产品开发中代码不可控的因素，本框架除了提供完善的开发文档和代码注释外，针对专业版用户还提供一对一的技术支持，确保开发人员尽可能理解整套框架源码的方方面面，为产品保驾护航。</li>
                            <li><span>接私活的个人开发者。</span>手里有一套可高度定制化的中后台框架，什么项目都不用担心啦~</li>
                        </ol>
                    </div>
                </page-main>
                <page-main title="优势" style="margin: 0;">
                    <div class="question">
                        <ol class="answer">
                            <li><span>作者拥有10年+的前后端开发经验。</span>部分框架的作者由于天然缺少后端开发经验，可能会在设计框架的时候，很少或者没有考虑后端的实现逻辑，导致框架在实际使用中，业务场景无法落地，开发人员得通过修改源码自行实现业务。</li>
                            <li><span>经历过数十个真实项目的打磨。</span>没用在真实业务场景中使用过的框架都是纸飞机，哪怕它提供的演示功能特别华丽。而本框架在作者就职的公司，已经稳定应用在电商、直播、OA、CRM、ERP等多个不同领域的中后台系统中。</li>
                            <li><span>丰富的组件库。</span>除了支持 ElementUI 自带的组件外，框架还扩充了部分业务组件，以及第三方插件。借助以往的项目经验，提供最佳实践方案，方便开发人员直接使用。</li>
                            <li><span>持续更新的业务应用静态页面。</span>通过项目积累，沉淀出数十个业务应用的静态页面，做到开发人员拿来即可使用，极大提升开发效率的同时，还省去了产品和设计人员的工作。</li>
                            <li><span>长期维护。</span>无论是免费的基础版，还是付费的专业版，均提供长期维护。区别在于基础版侧重于稳定性维护，主要在修复 bug ，不定期增加新特性；专业版侧重于新特性开发，在确保稳定的基础上，会长期深挖中后台系统框架，持续产出可落地的特性或开发规范。</li>
                        </ol>
                    </div>
                </page-main>
            </el-col>
        </el-row>
        <page-main>
            <el-row :gutter="20">
                <el-col :md="8">
                    <el-card shadow="hover" class="cube-card">
                        <template #header>
                            <div class="header">
                                访客数据魔方
                                <el-select v-model="type" size="mini" placeholder="请选择">
                                    <el-option label="今天 - 昨天" :value="1" />
                                    <el-option label="本周 - 上周" :value="2" />
                                    <el-option label="本月 - 上月" :value="3" />
                                    <el-option label="今年 - 去年" :value="4" />
                                </el-select>
                            </div>
                        </template>
                        <el-row :gutter="10">
                            <el-col :span="10">
                                <div class="today">123</div>
                                <div class="sub-title">{{ titlePrefix[0] }}访问量（单位：PV）</div>
                            </el-col>
                            <el-col :span="10">
                                <div class="yesterday">123</div>
                                <div class="sub-title">{{ titlePrefix[1] }}访问量（单位：PV）</div>
                            </el-col>
                            <el-col :span="4">
                                <div class="contrast">12</div>
                                <div class="sub-title">对比</div>
                            </el-col>
                        </el-row>
                        <el-row :gutter="10">
                            <el-col :span="10">
                                <div class="today">123</div>
                                <div class="sub-title">{{ titlePrefix[0] }}访问量（单位：UV）</div>
                            </el-col>
                            <el-col :span="10">
                                <div class="yesterday">123</div>
                                <div class="sub-title">{{ titlePrefix[1] }}访问量（单位：UV）</div>
                            </el-col>
                            <el-col :span="4">
                                <div class="contrast">12</div>
                                <div class="sub-title">对比</div>
                            </el-col>
                        </el-row>
                    </el-card>
                </el-col>
                <el-col :md="8">
                    <el-card shadow="hover" class="cube-card">
                        <template #header>
                            <div class="header">
                                下载数据魔方
                                <el-select v-model="type" size="mini" placeholder="请选择">
                                    <el-option label="今天 - 昨天" :value="1" />
                                    <el-option label="本周 - 上周" :value="2" />
                                    <el-option label="本月 - 上月" :value="3" />
                                    <el-option label="今年 - 去年" :value="4" />
                                </el-select>
                            </div>
                        </template>
                        <el-row :gutter="10">
                            <el-col :span="10">
                                <div class="today">123</div>
                                <div class="sub-title">{{ titlePrefix[0] }}下载量（单位：次）</div>
                            </el-col>
                            <el-col :span="10">
                                <div class="yesterday">123</div>
                                <div class="sub-title">{{ titlePrefix[1] }}下载量（单位：次）</div>
                            </el-col>
                            <el-col :span="4">
                                <div class="contrast">12</div>
                                <div class="sub-title">对比</div>
                            </el-col>
                        </el-row>
                    </el-card>
                </el-col>
                <el-col :md="8">
                    <el-card shadow="hover" class="cube-card">
                        <template #header>
                            <div class="header">
                                销售数据魔方
                                <el-select v-model="type" size="mini" placeholder="请选择">
                                    <el-option label="今天 - 昨天" :value="1" />
                                    <el-option label="本周 - 上周" :value="2" />
                                    <el-option label="本月 - 上月" :value="3" />
                                    <el-option label="今年 - 去年" :value="4" />
                                </el-select>
                            </div>
                        </template>
                        <el-row :gutter="10">
                            <el-col :span="10">
                                <div class="today">123</div>
                                <div class="sub-title">{{ titlePrefix[0] }}销售总金额（单位：人民币）</div>
                            </el-col>
                            <el-col :span="10">
                                <div class="yesterday">123</div>
                                <div class="sub-title">{{ titlePrefix[1] }}销售总金额（单位：人民币）</div>
                            </el-col>
                            <el-col :span="4">
                                <div class="contrast">12</div>
                                <div class="sub-title">对比</div>
                            </el-col>
                        </el-row>
                    </el-card>
                </el-col>
            </el-row>
        </page-main>
    </div>
</template>

<script>
export default {
    data() {
        return {
            diff: [{
                basic: [
                    '3 套页面布局',
                    '1 款主题风格',
                    '6 个侧边栏导航配置项',
                    '支持外链导航',
                    '支持全方位权限验证',
                    '10+ 个基础组件',
                    '提供少量扩展组件',
                    '支持 Mock 数据',
                    '团队代码规范',
                    '需保留作者版权信息'
                ],
                pro: [
                    '20 套页面布局',
                    '6 款主题风格',
                    '10 个侧边栏导航配置项',
                    '支持外链导航',
                    '支持内嵌导航',
                    '支持 Tab 标签栏',
                    '支持全方位权限验证',
                    '10+ 个基础组件',
                    '提供完整扩展组件',
                    '支持国际化',
                    '支持 Mock 数据',
                    '支持错误日志上报',
                    '支持文件自动生成',
                    '提供业务应用静态页面（长期扩充）',
                    '团队代码规范',
                    '可自定义版权信息',
                    '提供一对一技术支持'
                ]
            }],
            type: 1
        }
    },
    computed: {
        locationOrigin: () => location.origin,
        titlePrefix() {
            let arr = []
            switch (this.type) {
                case 1: arr = ['今天', '昨天']; break
                case 2: arr = ['本周', '上周']; break
                case 3: arr = ['本月', '上月']; break
                case 4: arr = ['今年', '去年']; break
            }
            return arr
        }
    },
    methods: {
        open(url) {
            window.open(url, 'top')
        },
        onIconClick(val) {
            this.$message({
                message: `你点击了：${val}`,
                type: 'info'
            })
        }
    }
}
</script>

<style lang="scss" scoped>
.text-emphasis {
    /* stylelint-disable-next-line property-no-vendor-prefix */
    -webkit-text-emphasis-style: "❤";
}
.fa-info {
    padding: 10px 0 0;
    text-align: center;
    h1 {
        margin: 10px auto 20px;
    }
}
.question {
    .answer {
        margin: 20px 0 0;
        padding-left: 20px;
        font-size: 14px;
        color: #aaa;
        li {
            margin-bottom: 10px;
            line-height: 1.5;
            &:last-child {
                margin-bottom: 0;
            }
        }
        span {
            color: #666;
            font-weight: bold;
        }
    }
}
.icon-box {
    padding: 20px;
    text-align: center;
    background-color: #fff;
    cursor: pointer;
    transition: 0.2s;
    &:hover {
        color: #fff;
    }
    &-1 {
        color: #ffc069;
        &:hover {
            background-color: #ffc069;
        }
    }
    &-2 {
        color: #b37feb;
        &:hover {
            background-color: #b37feb;
        }
    }
    &-3 {
        color: #95de64;
        &:hover {
            background-color: #95de64;
        }
    }
    &-4 {
        color: #ff85c0;
        &:hover {
            background-color: #ff85c0;
        }
    }
    &-5 {
        color: #ff9c6e;
        &:hover {
            background-color: #ff9c6e;
        }
    }
    &-6 {
        color: #282c34;
        &:hover {
            background-color: #282c34;
        }
    }
    i {
        font-size: 24px;
    }
    .title {
        margin-top: 5px;
        font-size: 14px;
    }
}
.cube-card {
    :deep(.el-col) {
        margin-top: 10px;
        margin-bottom: 20px;
    }
    .header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        .el-select {
            width: 120px;
        }
    }
    .today,
    .yesterday,
    .contrast {
        font-size: 24px;
        line-height: 30px;
    }
    .today {
        font-weight: bold;
        color: #9d8254;
    }
    .yesterday {
        color: #666;
    }
    .contrast::after {
        content: "%";
    }
    .sub-title {
        font-size: 12px;
        line-height: 18px;
        color: #98a4b0;
    }
}
</style>
